/*
 * @lc app=leetcode.cn id=242 lang=typescript
 *
 * [242] 有效的字母异位词
 */

// @lc code=start

// 排序校验法
// function isAnagram(s: string, t: string): boolean {
//     return (
//         s
//             .split("")
//             .sort((a, b) => {
//                 return a.charCodeAt(0) - b.charCodeAt(0);
//             })
//             .join("") ===
//         t
//             .split("")
//             .sort((a, b) => {
//                 return a.charCodeAt(0) - b.charCodeAt(0);
//             })
//             .join("")
//     );
// }

// 单一 hash 表升降法
function isAnagram(s: string, t: string): boolean {
    if (s.length !== t.length) return false;
    const a = new Map<string, number>();
    for (let index = 0; index < s.length; index++) {
        const a1 = s[index];
        const b1 = t[index];
        a.set(a1, (a.get(a1) || 0) + 1);
        a.set(b1, (a.get(b1) || 0) - 1);
    }
    for (const iterator of a.values()) {
        if (iterator !== 0) return false;
    }
    return true;
}
// @lc code=end
